package level03;

import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Scanner;

/**
 * 在 d 盘目录下有一个加密文件 a.txt（文件里只有英文和数字），密码是“heima”
 * 当密码输入正确时才能读取文件里的数据。现要求用代码来模拟读取文件的过程，并统计文
 * 件里各个字母出现的次数，并把统计结果按照如下格式输出到 d 盘的 count.txt 中。
 * a：2 个
 * b：3 个
 * c：4 个
 */
public class Two {
    private static int one;

    public static void main(String[] args) throws IOException, InterruptedException {
        System.out.println("请输入密码");
        Scanner scanner = new Scanner(System.in);
        String password = scanner.nextLine();
        //读取文件信息
        FileReader fileReader = new FileReader("a.txt");
        if ("heima".equals(password)) {
            System.out.println("密码正确");
            System.out.println("正在读取文件...");
            Thread.sleep(1000);
            //定义一个双列集合，key存储值，val存储
            HashMap<Character, Integer> hashMap = new HashMap<>();
            while ((one = fileReader.read()) != -1) {
                //将这个key添加到hashmap中，重复读取到相同的key，val+1
                hashMap.put((char) one, hashMap.getOrDefault((char) one, 0) + 1);
            }
            for (Map.Entry<Character, Integer> entry : hashMap.entrySet()) {
                System.out.println(entry.getKey()+":"+entry.getValue()+"个");
            }
        } else {
            System.out.println("密码不正确");
        }
    }
}
